#ifndef _NEPTUNER_SCUBUDDY_H_
#define _NEPTUNER_SCUBUDDY_H_

#include "Scope.h"

class Scubwalker
{
public:
	Scope*		m_pxCurrentScope;
	Location*	m_pxLocation;

	void setLocation(Scope* in_pxScope, Location* in_pxLocation)
	{
		m_pxCurrentScope = in_pxScope;
		m_pxLocation = in_pxLocation;
	}

    virtual void offNewToken(Scope& inScope, Token& inToken) = 0;
	//Called after ScopeEntry or ScopeExit, this is an important difference from Scubserver

    virtual void offScopeEntry(Scope& inNewScope, Scope& inOldScope) = 0;
	//Called *after* new scope entered
    virtual void offScopeExit(Scope& inNewScope, Scope& inOldScope) = 0;
	//Called *after* old scope exited
};

#endif
